home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
wink24
/
src
/
string.c
< prev
next >
Wrap
Text File
|
1993-07-08
|
2KB
|
78 lines
#include <ctype.h>
#include "defs.h"
BOOL iskan(p)
LONG p;
{
register int c1,c2;
c1 = *Cnv_ptr(p++) & 0xff;
c2 = *Cnv_ptr(p) & 0xff;
if ( iskanji(c1) && p != btm_ptr && iskanji2(c2) )
return TRUE;
else
return FALSE;
}
LONG Nxt_line2(p)
register LONG p;
{
int ch,x;
for ( x = 0 ; p < btm_ptr ; ) {
ch = *Cnv_ptr(p);
if ( ch == '\x0A' )
return ++p;
else if ( ch == '\t' ) {
p++;
if ( (x = ((x + TAB) / TAB) * TAB) >= MAX_X )
return p;
} else if ( iskan(p) != FALSE ) {
if ( (x += 2) > MAX_X )
return p;
p+=2;
} else if ( ch == '\x0D' ) {
p++;
} else {
p++;
if ( ++x >= MAX_X )
return p;
}
}
return p;
}
LONG Bak_line2(ptr)
LONG ptr;
{
LONG s;
register LONG p;
if ( (p = ptr) != 0 && *Cnv_ptr(--p) == '\n' && p != 0 ) --p;
while ( p != 0 && *Cnv_ptr(p) != '\n' ) --p;
if ( p != 0 && *Cnv_ptr(p) == '\n' ) p++;
do { s = p; } while ( (p = Nxt_line2(s)) < ptr );
return s;
}
/********** move to buff.c ************
LONG Nxt_line(p)
register LONG p;
{
while ( p < btm_ptr ) {
if ( *Cnv_ptr(p++) == '\n' )
break;
}
return p;
}
***************************************/
LONG Bak_line(ptr)
LONG ptr;
{
register LONG p;
if ( (p = ptr) != 0 && *Cnv_ptr(--p) == '\n' && p != 0 ) --p;
while ( p != 0 && *Cnv_ptr(p) != '\n' ) --p;
if ( p != 0 && *Cnv_ptr(p) == '\n' ) p++;
return p;
}